/*
 * ParcelaReceber.java
 *
 * Created on October 12, 2007, 10:46 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package petstore.model;

import petstore.model.enumeration.SituacaoParcelaReceber;
import java.util.Collection;
import java.util.Date;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Entity class ParcelaReceber
 * 
 * @author Tom Hayden
 */
@Entity
@Table(name = "parcela_receber")
@AttributeOverrides( {
    @AttributeOverride(name="id", column=@Column(name="cdparcelareceber")),
    @AttributeOverride(name="description", column=@Column(name="dshistparcreceber")),
    @AttributeOverride(name="active", column=@Column(name="ativo"))
})
public class ParcelaReceber extends CodeData {

    @Column(name = "nrparcelareceber")
    private Short numeroParcela;
    
    @Column(name = "dtemissaoparcreceber")
    @Temporal(TemporalType.DATE)
    private Date dataEmissao;

    @Column(name = "dtvencparcreceber")
    @Temporal(TemporalType.DATE)
    private Date dataVencimento;

    @Column(name = "vlrparcreceber")
    private Double valorParcelaReceber;

    @Column(name = "prcmultaparcreceber")
    private Double percentualMulta;

    @Column(name = "vlrparcrecebido")
    private Double valorParcelaRecebido;

    @Column(name = "dtrecebimento")
    @Temporal(TemporalType.TIMESTAMP)
    private Date dataRecebimento;

    @Column(name = "stparcreceber")
    @Enumerated(EnumType.ORDINAL)
    private SituacaoParcelaReceber situacaoParcelaReceber;

    @Column(name = "nrcartaocredito")
    private String numeroCartaoCredito;

    @Column(name = "dtvalcartaocredito")
    @Temporal(TemporalType.DATE)
    private Date dataValidadeCartaoCredito;

    @OneToMany(cascade = CascadeType.ALL)
    private Collection<ChequeRecebido> chequesRecebidos;
    
    @ManyToOne
    @JoinColumn(name="cdesppagamento")
    private EspeciePagamento especiePagamento;

    @ManyToOne
    @JoinColumn(name="cdcontacorrente")
    private ContaCorrente contaCorrente;

    /** Creates a new instance of ParcelaReceber */
    public ParcelaReceber() {
    }

    public Short getNumeroParcela() {
        return numeroParcela;
    }

    public void setNumeroParcela(Short numeroParcela) {
        this.numeroParcela = numeroParcela;
    }

    public Date getDataEmissao() {
        return dataEmissao;
    }

    public void setDataEmissao(Date dataEmissao) {
        this.dataEmissao = dataEmissao;
    }

    public Date getDataVencimento() {
        return dataVencimento;
    }

    public void setDataVencimento(Date dataVencimento) {
        this.dataVencimento = dataVencimento;
    }

    public Double getValorParcelaReceber() {
        return valorParcelaReceber;
    }

    public void setValorParcelaReceber(Double valorParcelaReceber) {
        this.valorParcelaReceber = valorParcelaReceber;
    }

    public Double getPercentualMulta() {
        return percentualMulta;
    }

    public void setPercentualMulta(Double percentualMulta) {
        this.percentualMulta = percentualMulta;
    }

    public Double getValorParcelaRecebido() {
        return valorParcelaRecebido;
    }

    public void setValorParcelaRecebido(Double valorParcelaRecebido) {
        this.valorParcelaRecebido = valorParcelaRecebido;
    }

    public Date getDataRecebimento() {
        return dataRecebimento;
    }

    public void setDataRecebimento(Date dataRecebimento) {
        this.dataRecebimento = dataRecebimento;
    }

    public SituacaoParcelaReceber getSituacaoParcelaReceber() {
        return situacaoParcelaReceber;
    }

    public void setSituacaoParcelaReceber(SituacaoParcelaReceber situacaoParcelaReceber) {
        this.situacaoParcelaReceber = situacaoParcelaReceber;
    }

    public String getNumeroCartaoCredito() {
        return numeroCartaoCredito;
    }

    public void setNumeroCartaoCredito(String numeroCartaoCredito) {
        this.numeroCartaoCredito = numeroCartaoCredito;
    }

    public Date getDataValidadeCartaoCredito() {
        return dataValidadeCartaoCredito;
    }

    public void setDataValidadeCartaoCredito(Date dataValidadeCartaoCredito) {
        this.dataValidadeCartaoCredito = dataValidadeCartaoCredito;
    }

    public Collection<ChequeRecebido> getChequesRecebidos() {
        return chequesRecebidos;
    }

    public void setChequesRecebidos(Collection<ChequeRecebido> chequesRecebidos) {
        this.chequesRecebidos = chequesRecebidos;
    }

    public EspeciePagamento getEspeciePagamento() {
        return especiePagamento;
    }

    public void setEspeciePagamento(EspeciePagamento especiePagamento) {
        this.especiePagamento = especiePagamento;
    }

    public ContaCorrente getContaCorrente() {
        return contaCorrente;
    }

    public void setContaCorrente(ContaCorrente contaCorrente) {
        this.contaCorrente = contaCorrente;
    }

}
